import pandas as pd
import numpy as np

# 读取合并后的数据（原始路径保持不变）
df_Master = pd.read_csv('F:\\数据\\df_Master.csv', encoding='gb18030')

# 显示设置
pd.set_option("display.max_columns", len(df_Master.columns))

# 缺失值处理：将-1替换为np.nan
df_Master = df_Master.replace({-1: np.nan})

# 筛选缺失率超过80%的变量
missing_columns = []
for column in df_Master.columns:
    if sum(pd.isnull(df_Master[column]))/len(df_Master)>=0.8:
        missing_columns.append(column)
print(f"缺失率>80%的变量数: {len(missing_columns)}")
print("缺失变量列表:", missing_columns)

# 删除高缺失率变量
df_Master = df_Master.loc[:, ~df_Master.columns.isin(missing_columns)]

# 筛选特征缺失超过100的样本
missing_index = []
for i in np.arange(df_Master.shape[0]):
    if list(df_Master.loc[i,:].isnull()).count(True)>100:
        missing_index.append(i)

# 删除高缺失样本
df_Master = df_Master.drop(missing_index).reset_index(drop=True)


#1.处理特殊缺失值 -1->NaN
#2.删除高缺失率特征 >80%缺失的列
#3.删除高缺失样本 >100个缺失特征的行